Users of computing devices, such as desktop PCs, set-top boxes, personal digital assistants (PDAs), and so on, have access to an ever increasing amount of multimedia content (e.g., audio, video, and other assorted data). Typically, this multimedia content is accessed, manipulated and/or presented on a computing device using a multimedia application running on the device.
Multimedia content may be accessed from a variety of different sources, in a variety of different formats, using a variety of different communications protocols. Programming each of the different applications to individually determine basic information regarding the multimedia content requires duplicated efforts and undesirably wastes time, costs, and resources that are required to individually program the multimedia applications. In addition, most current applications do not provide an extensibility mechanism to allow for new types of sources or formats. Accordingly, there is currently a need in the art for improved methods for enabling multimedia applications to access and process multimedia data without the applications having to individually interpret and determine the characteristics of the multimedia content directly.
One underlying problem with using typical multimedia applications is that in order to access multimedia content, however, is that there are many different types of formats, standards, and protocols that are used to encode and transmit digital data. Examples of different formatting standards include, for example, MPEG (Moving Picture Experts Group), ASF (Advanced Streaming Format), AVI (Audio Video Interleave), Active Movie, Cinepaq, QuickTime, Indeo, ATVEF (Advanced Television Enhancement Forum) and ATSC (Advanced Television Systems Committee).
Examples of different protocols and languages include RTSP (Real-Time Streaming Protocol), RTP (Real-Time Protocol), RTCP (Real-Time Control Protocol), UDP (User Datagram Protocol), HTTP (Hypertext Transport Protocol), MMS (Microsoft Media Server), TCP (Transmission Control Protocol), XML (extensible Markup Language), and SMIL (Synchronized Multimedia Integration Language).
Accordingly, the large variety of different multimedia formats, standards, and protocols creates a burden on programmers for creating multimedia applications that are capable of accommodating the various standards, protocols, languages and requirements that can be used to present multimedia content. Individually programming the multimedia applications in this manner, however, is inefficient, particularly when a single computing system is configured with multiple applications that must each be programmed to interpret certain basic information of the multimedia content. For instance, it may be necessary for the applications to each determine what protocol to use to read the data, and once the data are being read, the format of the data.
Programming each of the different applications to individually determine how the multimedia content should be read and what format it is requires duplicated efforts and undesirably wastes time, costs, and resources that are required to individually program the multimedia applications. Accordingly, there is currently a need in the art for improved methods for enabling multimedia applications to access and process multimedia data without the applications having to individually interpret and determine the format of and the best method for reading the multimedia content directly.